In telecommunications signaling networks, congestion is a condition that occurs when messages cannot reach a destination due to a processing bottleneck in the network. The processing bottleneck can be caused by an application that cannot process received messages as fast as the messages are received. Processing bottlenecks can also be caused by link level conditions.
In conventional SS7 networks, signaling messages are sent over fixed-bandwidth signaling links, and congestion monitoring and management occurs at a single layer in the SS7 protocol stack. For example, SS7 signaling messages are typically sent over TDM-based signaling links. Because the TDM-based signaling links guarantee a fixed amount of bandwidth for each signaling link, congestion can be managed using one or more fixed congestion thresholds set at a single level in the signaling message protocol stack. In conventional SS7 networks, congestion is managed at message transfer part (MTP) level 3.
In SS7 over IP (SS7/IP) signaling networks, transmission bandwidth is often shared among multiple signaling links. As a result, congestion may occur due to the fact that the underlying transmission medium is shared. In contrast, in conventional fixed-bandwidth SS7 signaling links, congestion is most likely due to a peer node not being able to process messages at a sufficiently fast rate. Accordingly, conventional SS7 congestion triggers that are designed primarily for node-related congestion may not be suitable for SS7/IP signaling links when the congestion may be due to channel over-utilization, for example. Another reason that conventional fixed-bandwidth SS7 congestion triggers may be unsuitable for SS7/IP signaling links is that congestion may first manifest itself at one or more layers below the SS7 layers in SS7/IP signaling links, and SS7 congestion management procedures are triggered only at SS7 MTP layer 3. In SS7/IP signaling links, congestion may first be detected at the transport or adaptation layer before the congestion is present at the SS7 MTP layer. Detecting congestion at a layer before it reaches the SS7 MTP layer may be useful in determining the cause of the congestion and/or detecting the congestion early.
It is possible in SS7/IP protocol stacks to manually configure congestion parameters at each layer. For example, the setsockopt( ) function can be used to set congestion parameters for a transport layer socket. However, if a congestion parameter is changed at one layer, a skilled programmer is required to set the congestion parameters at other layers in a way that is consistent with the change in the parameter at the one layer. Such skilled programming is labor intensive and prevents the easy updating of congestion management parameters as network bandwidth utilization changes.
Accordingly, in light of these difficulties associated with conventional congestion management procedures, there exists a need for improved methods, systems, and computer program products for managing congestion in a multi-layer telecommunications signaling network protocol stack.